﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using ATM.Entity;
using System.Data;

namespace ATM.DataAccess
{
    public class AccountDAO
    {

        public int AddNewCard(ATMCard atmCardObject)
        {
            List<SqlParameter> lstParameter = new List<SqlParameter>();
            SqlParameter parameter = new SqlParameter("PIN", SqlDbType.VarChar);
            parameter.Value = atmCardObject.StrPin;
            lstParameter.Add(parameter);
            //Add Name
            parameter = new SqlParameter("Name", SqlDbType.VarChar);
            parameter.Value = atmCardObject.StrName;
            lstParameter.Add(parameter);
            //Add account ID
            parameter = new SqlParameter("AccountID", SqlDbType.Int);
            parameter.Value = atmCardObject.IntAccoutId;
            lstParameter.Add(parameter);
            //Add DateCreat
            parameter = new SqlParameter("DateCreate", SqlDbType.DateTime);
            parameter.Value = atmCardObject.DateCreate;
            lstParameter.Add(parameter);
            //Add DateExpire
            parameter = new SqlParameter("DateExpire", SqlDbType.DateTime);
            parameter.Value = atmCardObject.DateExpire;
            lstParameter.Add(parameter);
            int intResult = 0;
            try
            {
                intResult = SqlDataHelper.ExecuteNoneQuery("sp_AddNewCard", lstParameter);
                return intResult;
            }
            catch (SqlException ex)
            {
                return 0;
            }
        }

        public int ModifyCardInfo(bool blState)
        {
            return 1;
        }

        /// <summary>
        /// trả về các giao dịch đã diễn ra trong ngày
        /// Ngày thực hiện kiểm tra là ngày hiện tại của hệ thống.
        /// </summary>
        /// <returns>
        /// Tổng giá trị giao dịch.
        /// </returns>
        public double WithDrawInDay()
        {
            return 1;
        }
        /// <summary>
        /// Trả lại giá trị tiền tối đa mà tài khoản có thể rút trong một ngày.
        /// </summary>
        /// <param name="cardID">mã thẻ</param>
        /// <returns>Giá trị tối đa số tiền có thể rút.</returns>
        public double ODLimit(int cardID)
        {
            return 0;
        }
        /// <summary>
        /// Trả về số dư tài khoản của account là chủ sở hữu của thẻ.
        /// </summary>
        /// <param name="CardID">mã của thẻ cần kiểm tra số dư tài khoản</param>
        /// <returns>
        /// trả về số dư tài khoản của account là chủ sở hữu thẻ hiện tại.
        /// </returns>
        public double GetBalance(string cardID)
        {
            return 0;
        }

        public bool IsBlock()
        {
            return false;
        }
        /// <summary>
        /// Hàm trả về thông tin tài khoản của chủ thẻ
        /// </summary>
        /// <param name="CardID">Mã thẻ</param>
        /// <returns></returns>
        public Account GetAccount(string CardID)
        {
            return new Account();
        }

        /// <summary>
        /// Kiem tra ton tai cua tai khoan 
        /// </summary>
        /// <returns>
        /// + Neu tai khoan ton tai tra ve ten chu tai khoan
        ///        
        /// </returns>
        public string ValidateAccountNumber(string strAccNumber)
        {
            //
            return "Abc";
        }


    }
}
